﻿#ifndef NODEJSCOM_H
#define NODEJSCOM_H


#include "services/Process/IPCCom.h"
#include "services/tlv/Base/iic.h"

class APIBridgeCom : public IPCCom
{
    Q_OBJECT
public:
    enum {
        CMD_SendTlv        = 0x1,
        CMD_SendIIC        = 0x2,
        CMD_ShowMsg        = 0x3,
        CMD_ToastInfo      = 0x4,
        CMD_ToastWarning   = 0x5,
        CMD_ToastError     = 0x6,
        CMD_ToastSuccess   = 0x7,
        CMD_SelectFile     = 0x8
    };

    explicit APIBridgeCom(QObject* parent=nullptr);

private slots:
    void onDataReceived(const QByteArray &data) override;
    void handleSendTlv(const QString& tag, const QString& value);
    void handleSendIIC(const QString& addr, const QString& data, const QString& readlen);
    void handleShowMsg(const QString& msg, int fontsize);
    void handleToastInfo(const QString& msg, int duration);
    void handleToastWarning(const QString& msg, int duration);
    void handleToastError(const QString& msg, int duration);
    void handleToastSuccess(const QString& msg, int duration);
    void handleSelectFile(const QString& title);

    QByteArray makeJsonTlv(const Tlv& tlv);
    QByteArray makeJsonIIC(const IIC& iic);
    QByteArray makeJsonMsg(const QString& msg, int fontsize);
    QByteArray makeJsonToast(uint8_t toastID, const QString& msg, int duration);
    QByteArray makeJsonFile(const QString& filepath);

signals:
};

#endif // NODEJSCOM_H
